/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package administracion.helper;

import administracion.delegate.GestionPedidosDelegate;
import java.io.InputStream;

import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import suministros.ejb30.TO.TipoTO;







/**
 *
 * @author luis_angel
 */
public class Reportes {

    public static void verOrden(String codigo){
     try {
                Map parameters = new HashMap();
                parameters.put("cod_orden",codigo);
                JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("reporteOrden.jasper", parameters);
                JasperViewer.viewReport(jPrint, false);
                //JasperPrintManager.printReport( jPrint, false);
     } catch (Exception e) {
          System.out.println("error " + e.getMessage());
     }
    }

    public static void verReportePorTipo(TipoTO tip, String codigo){
        if(tip.getDescripcion_valor().trim().equalsIgnoreCase("ORDEN"))
                verOrden(codigo);
        else if(tip.getDescripcion_valor().trim().equalsIgnoreCase("MOVIMIENTO INGRESO"))
                verNotaIngreso(codigo);
        else if(tip.getDescripcion_valor().trim().equalsIgnoreCase("MOVIMIENTO SALIDA"))
                verNotaSalida(codigo);
    }

    public static void verNotaIngreso(String codigo){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("idMovimiento", codigo);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("NotaIngreso.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }

     public static void verNotaSalida(String codigo){
       JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("idMovimiento", codigo);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("NotaSalida.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
             jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }


     public static void verPlantillaInventario(int ubicacion){
     try {
                Map parameters = new HashMap();
                parameters.put("ubicacion",ubicacion);
                JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("reporte_padron_inventario.jasper", parameters);
                JasperViewer.viewReport(jPrint, false);
                //JasperPrintManager.printReport( jPrint, false);
     } catch (Exception e) {
          System.out.println("error " + e.getMessage());
     }
    }


    public static void verOrdenGenerada(JasperPrint reporte){
     try {
                JasperViewer.viewReport(reporte, false);
     } catch (Exception e) {
          System.out.println("error " + e.getMessage());
     }
    }


    public static void verOrdenServicio(String codigo){
     try {
                Map parameters = new HashMap();
                parameters.put("cod_orden",codigo);
                JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("reporteOrden_servicio.jasper", parameters);
                JasperViewer.viewReport(jPrint, false);
     } catch (Exception e) {
          System.out.println("error " + e.getMessage());
     }
    }


     public static void verSolicitudCotizacion(String codigo){
     try {
                Map parameters = new HashMap();
                parameters.put("cod_solicitud",codigo);
                JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("reporteSolicitudCotizacion.jasper", parameters);
                JasperViewer.viewReport(jPrint, false);
     } catch (Exception e) {
          System.out.println("error " + e.getMessage());
     }
    }

      public static void verComparativoCotizaciones(String codigo){
     try {
                Map parameters = new HashMap();
                parameters.put("nro_solicitud_cotizacion",codigo);
                JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("comparativo_cotizaciones.jasper", parameters);
                JasperViewer.viewReport(jPrint, false);

     } catch (Exception e) {
         e.printStackTrace();
          System.out.println("error " + e.getMessage());
     }
    }

      /*public static void verComprobante(int id_comprobante) throws Exception{
          byte[] archivo = GestionPedidosDelegate.getInstance().getComprobanteArchivo(id_comprobante);
         /* byte[] data = IOUtils.toByteArray(archivo);
          File file = new File(id_comprobante+".pdf");
          org.apache.commons.io.FileUtils.writeByteArrayToFile(file, data);
         //set up the frame and panel
        JFrame frame = new JFrame("PDF Test");
        frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        frame.setLocationRelativeTo(null);


        PagePanel panel = new PagePanel();
        frame.add(panel,"CENTER");
        frame.pack();
        frame.setVisible(true);

      //  RandomAccessFile raf = new RandomAccessFile(file, "r");
        //FileChannel channel = raf.getChannel();
       /* ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY,
            0, channel.size());
        ByteBuffer buf = ByteBuffer.wrap(archivo);
        PDFFile pdffile = new PDFFile(buf);
  
        // show the first page
        PDFPage page = pdffile.getPage(41);
        panel.useZoomTool(true);

        File f = new File("c:/" + id_comprobante + ".pdf");
        FileOutputStream wChannel = new FileOutputStream(f);

// Write the ByteBuffer contents; the bytes between the ByteBuffer's
// position and the limit is written to the file
        wChannel.write(archivo);

        // Close the file
        wChannel.close();
       /* BufferedWriter out = new BufferedWriter(new FileWriter("c:/" + id_comprobante + ".pdf"));
        out.write(archivo, 0, archivo.length);

        panel.showPage(page);
      }
*/
        public static void verImagen(InputStream img){
            try {
                        
                        JasperPrint jp = JasperFillManager.fillReport(img, null);
                        JasperViewer.viewReport(jp, false);
             } catch (Exception e) {
                  System.out.println("error " + e.getMessage());
             }
        }

    public static void verAlertaReestructuracionLicitacion(String codigo, String id_licitacion){
         try {
                    Map parameters = new HashMap();
                    parameters.put("id_empresa",codigo);
                    parameters.put("id_licitacion",id_licitacion);
                    JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("reporteAlertasActividadesLicitacion.jasper", parameters);
                    JasperViewer.viewReport(jPrint, false);
         } catch (Exception e) {
              System.out.println("error " + e.getMessage());
         }
    }
    public static void verTransferenciaSalidaFaltante(String empresa, String usuario){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("id_usuario", usuario);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("ReporteTransferenciaFaltantesSalida.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }
     public static void verTransferenciaIngresoFaltante(String empresa, String usuario){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("id_usuario", usuario);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("ReporteTransferenciasFaltantesIngresar.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }
     public static void verTransferenciaSalidaFaltanteUbicacion(String empresa, String usuario, String ubicacion){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("id_usuario", usuario);
        parametros.put("id_ubicacion", ubicacion);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("ReporteTransfernciasFaltantesSalidaAlmacen.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }
     public static void verTransferenciaIngresoFaltanteUbicacion(String empresa, String usuario, String ubicacion){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("id_usuario", usuario);
        parametros.put("id_ubicacion", ubicacion);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("ReporteTransferenciasFaltantesIngresarAlmacen.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }
      public static void verIngresoFaltanteUbicar(String empresa, String usuario){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("id_usuario", usuario);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("ReporteMovimientoFantantesUbicar.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }
      public static void verRequerrimientos(String empresa, String cod_unid_organizativa, String ano){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("ano", ano);
        parametros.put("cod_unid_organizativa",cod_unid_organizativa);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("Necesidades_requeridas_operativas.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }
       public static void verRequerrimientosDetalle(String empresa, String cod_unid_organizativa, String ano){
        JasperViewer jv = null;
        JasperPrint jp = null;
        Map parametros = new HashMap();
        parametros.put("id_empresa", empresa);
        parametros.put("ano", ano);
        parametros.put("cod_unid_organizativa",cod_unid_organizativa);
        try {
            jp=GestionPedidosDelegate.getInstance().generarReporteIngreso("Necesidades_requeridas_operativas_detalleSumi.jasper", parametros);
            jv = new JasperViewer(jp, false);
            jv.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
            jv.setAlwaysOnTop(true);
            jv.setVisible(true);
        }catch (Exception e) {
            Utiles_MensajesDialogo.mensajeError("No se pudo realizar la transaccion");
        }
    }

        public static void verProveedorSumi(String empresa,String sumi){
             try {
                        Map parameters = new HashMap();
                        parameters.put("id_empresa",empresa);
                        parameters.put("id_suministro",sumi);
                        JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("Reporte_proveedor_por_suministros.jasper", parameters);
                        JasperViewer.viewReport(jPrint, false);
                        //JasperPrintManager.printReport( jPrint, false);
             } catch (Exception e) {
                  System.out.println("error " + e.getMessage());
             }
    }

      public static void verProveedorSumiFechas(String empresa,String sumi, String fecha_desde,String fecha_hasta){
             try {
                        Map parameters = new HashMap();
                        parameters.put("id_empresa",empresa);
                        parameters.put("id_suministro",sumi);
                        parameters.put("f_inicio",fecha_desde);
                        parameters.put("f_fin",fecha_hasta);
                        JasperPrint jPrint = GestionPedidosDelegate.getInstance().generarReporte("Reporte_proveedor_por_suministros_fechas.jasper", parameters);
                        JasperViewer.viewReport(jPrint, false);
                        //JasperPrintManager.printReport( jPrint, false);
             } catch (Exception e) {
                  System.out.println("error " + e.getMessage());
             }
    }
   
}
